/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.minidota.model;

import com.minidota.game.Room;
import com.minidota.jetty.GameWebSocket;

/**
 *
 * @author custom
 */
public class Player extends User {

    private boolean moveLeftKey;
    private boolean moveRightKey;
    private boolean moveUpKey;
    private boolean moveDownKey;

    public Player() {
        super();
    }

    @Override
    public void updateData(long tick) {
        super.updateData(tick);
        if (getSocket() != null) {
            //getSocket().checkAFK();
        }
    }

    /**
     * передает событие связанное с нажатием/отжатием клавиш мыши
     *
     * @param eventType - тип события: d - нажатие клавиши, u - отжатие клавиши
     * @param mouseButton - код кнопки: l - левая, r - правая
     */
    public void listenMouseEvent(String eventType, String mouseButton, int x, int y) {
        if ("d".equals(eventType)) {
            if ("l".equals(mouseButton)) {
                /*
                 User u = getUserByXY(x, y);
                 if (u != null) {
                 this.setSelected(u);
                 }*/
            } else if ("r".equals(mouseButton)) {
                if (getRoom().getTickToEndRound() == 0) {
                    newPath(new Vector2(x, y));
                    setTarget(null);
                    setCommand(1);
                }//бежать в точку
                /*User u = getUserByXY(x, y);
                 if (u != null && u.getId() != getId() && u.getTeamId() != getTeamId()) {
                 setTarget(u);
                 setCommand(2); //атаковать
                 } else {
                 setTarget(null);
                 setCommand(1);//бежать в точку
                 }*/
            }
        } else if ("u".equals(eventType)) {
            if ("l".equals(mouseButton)) {
            } else if ("r".equals(mouseButton)) {
            }
        }
    }

    public void atackObject(int gameId) {
        BaseObject u = getObjByGameId(gameId);
        if (u != null && u.getGameId() != getGameId() && u.getTeamId() != getTeamId()) {
            setTarget(u);
            setCommand(2); //атаковать
        }
    }

    public void selectObject(int gameId) {
        BaseObject u = getObjByGameId(gameId);
        if (u != null) {
            setSelected(u);
        }
    }
}
